#ifndef BOIDRENDERCOMPONENT_H_
#define BOIDRENDERCOMPONENT_H_

#include "Actor/Component.h"
#include "Config/Export.h"
#include "Core/GameTime.h"
#include "Framework/2D/SpriteRenderer.h"
#include "Framework/2D/SpriteTypes.h"
#include "Actor/Components/Transform2DComponent.h"
#include "Utilities/Color.h"

#include <iosfwd>
#include <string>

using namespace CasaEngine;

/*
	*	
	*/
class BoidRenderComponent :
	public Component
{
private:
	SpriteRenderer*	m_pSpriteRenderer;
	Transform2DComponent* m_pTransform;

public:
	BoidRenderComponent(BaseEntity* pEntity_);
	virtual ~BoidRenderComponent();		

	//all entities must implement an Initialize function
	void Initialize();

	//all entities must implement an update function
	void  Update(const GameTime& gameTime_);

	//all entities must implement an update function
	void  Render();

	//all entities can communicate using messages. They are sent
	//using the MessageDispatcher singleton class
	//void HandleEvent(const Event* pEvent_);

	//entities should be able to read/write their data to a stream
	void Write(std::ostream&  os)const;
	void Read (std::ifstream& is);
};

#endif // BOIDRENDERCOMPONENT_H_
